Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔥Remove stream combinators #845

Merged
merged 1 commit into from
Dec 13, 2023
Merged

🔥Remove stream combinators #845

merged 1 commit into from
Dec 13, 2023

Conversation

cowboyd
Copy link
Member

@cowboyd cowboyd commented Dec 13, 2023

Motivation

Stream transformations are not our core competency. If Effection is measured by that yard stick, it'll come up short because what we have is 5% implementation of a not-strongly-opinionated stream helpers library. One could very reasonably ask "well where is flatMap(), merge(), reduce(), reduceRight()" and on and on. The answer is that we aren't in that business, and it's better to not play that game at all, than to enter the race and get lapped 20 times.

Our mantra is "Structured Concurrency and Effects for JavaScript". It's a minimalist approach that seeks to excel via maximum compatibility and minimum friction over the long term. Having these as part of our API surface feels like it runs counter to that principle.

Approach

In the spirit of keeping things "core", remove first(), filter(), map(), pipe(), and associated documentation.

They should be published as a separate library where the optimal implementation (if there is one) can be discovered.

Copy link
Member

@taras taras left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Let's 🪓

taras

This comment was marked as duplicate.

Copy link
Collaborator

@neurosnap neurosnap left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We aren't using any of these in starfx so go for it!

Stream transformations are not our core competency. If Effection is
measured by that yard stick, it'll come up short because what we have
is 5% implementation of a not-strongly-opinionated stream helpers
library. One could very reasonably ask "well where is flatMap(),
merge(), reduce(), reduceRight()" and on and on. The answer is that we
aren't in that business, and it's better to not play that game at all,
than to enter the race and get lapped 20 times.

Our mantra is "Structured Concurrency and Effects for
JavaScript". It's a minimalist approach that seeks to excel via
maximum compatibility and minimum friction over the long term. Having
these as part of our API surface feels like it runs counter to that
principle.

In the spirit of keeping things "core", remove first(), filter(),
map(), pipe(), and associated documentation.

They should be published as a separate library where the optimal
implementation (if there is one) can be discovered.
@cowboyd cowboyd merged commit cc8408f into v3 Dec 13, 2023
3 checks passed
@cowboyd cowboyd deleted the v3-remove-stream-combinators branch December 13, 2023 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants